Imports CapaDeNegocios
Imports System.Data.SqlClient

Partial Public Class FrmTalonarioABM

    Inherits System.Web.UI.Page
    Private TipoTalonario As nTipoTalonario = New CapaDeNegocios.nTipoTalonario()
    Private Talonario As nTalonario = New CapaDeNegocios.nTalonario()

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            LLenar_Grid()
            LimpiarCampos()
            LlenarCboTipoTalonario()
        End If
    End Sub
    Sub LLenar_Grid()
        GridTalonario.DataSource = Talonario.BuscarFiltrado("", "", "", "", "", "", "")
        GridTalonario.DataBind()
        LimpiarCampos()
    End Sub
    Sub LlenarCboTipoTalonario()
        CboTipoTalonario.DataSource = TipoTalonario.DescripcionLetra("")
        CboTipoTalonario.DataTextField = "DescripcionLetra"
        CboTipoTalonario.DataValueField = "IdTipoTalonario"
        CboTipoTalonario.DataBind()
        If CboTipoTalonario.Items.Count > 1 Then
            CboTipoTalonario.SelectedIndex = 1
        End If
    End Sub

    Sub LimpiarCampos()
        GridTalonario.SelectedIndex = -1
        TxtNumeroDesde.Text = ""
        TxtNumeroHasta.Text = ""
        LblError.Text = ""
        HFId.Value = ""
        'BDPFechaVencimiento.Text = ""


        'TxtFechaVencimiento.Text = ""

        CboEstado.Enabled = True
        CboEstado.Items(2).Enabled = False
        CboTipoTalonario.Enabled = True
        TxtNumeroDesde.Enabled = True
        TxtNumeroHasta.Enabled = True
        'TxtFechaVencimiento.Enabled = True
        BDPFechaVencimiento.Enabled = True
        BDPFechaVencimiento.SelectedValue = ""
        BDPFechaAlta.Enabled = True
        BDPFechaAlta.SelectedValue = Now.Date.ToShortDateString()
        BDPFechaVencimiento.MinimumDate = Now.Date.ToShortDateString()
        BDPFechaVencimiento.MaximumDate = (Now.Date.AddDays(365 * 30)).ToShortDateString()
        BDPFechaAlta.MinimumDate = Now.Date.ToShortDateString()
        BDPFechaAlta.MaximumDate = (Now.Date.AddDays(365 * 30)).ToShortDateString()

    End Sub

    Protected Sub LnkGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LnkGuardar.Click
        If (TxtNumeroDesde.Text <> "" And TxtNumeroHasta.Text <> "") Then
            If HFId.Value.ToString() = "" Then
                If CboTipoTalonario.SelectedValue <> -1 Then
                    If Not Talonario.Existe(TxtNumeroDesde.Text, TxtNumeroHasta.Text, CboTipoTalonario.SelectedValue.ToString()) Then
                        Talonario.Insertar(TxtNumeroDesde.Text, TxtNumeroHasta.Text, BDPFechaVencimiento.Text, CboTipoTalonario.SelectedValue.ToString())
                        LimpiarCampos()
                        LLenar_Grid()
                    Else
                        LblError.Text = "Error, La numeracion del talonario es incorrecta."
                        LnkBuscar_Click(sender, e)
                    End If
                Else
                    LblError.Text = "Error, El tipo de talonario no puede ser nulo."
                End If
            Else
                If CboEstado.SelectedValue <> -1 Then
                    Talonario.Modificar(HFId.Value.ToString(), TxtNumeroDesde.Text, TxtNumeroHasta.Text, BDPFechaVencimiento.Text, CboEstado.SelectedValue.ToString(), CboTipoTalonario.SelectedValue.ToString())
                    LimpiarCampos()
                    LLenar_Grid()
                Else
                    LblError.Text = "Error, El Estado no puede ser nulo."
                End If
            End If
        Else
            LblError.Text = "Error, La numeracion no puede ser nula."
        End If
    End Sub

    Protected Sub GridTalonario_RowCommand(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridTalonario.RowCommand
        If e.CommandName = "Select" Then
            HFId.Value = e.CommandSource.Parent.FindControl("HfIdTalonario").value
            TxtNumeroDesde.Text = e.CommandSource.Parent.Parent.FindControl("lblNumeroDesde").text
            TxtNumeroHasta.Text = e.CommandSource.Parent.Parent.FindControl("lblNumeroHasta").text
            BDPFechaVencimiento.SelectedValue = e.CommandSource.Parent.Parent.FindControl("lblFechaVencimiento").text
            BDPFechaAlta.SelectedValue = e.CommandSource.Parent.Parent.FindControl("LblFechaAlta").text
            CboEstado.SelectedValue = e.CommandSource.Parent.Parent.FindControl("HFEstado").value
            CboTipoTalonario.SelectedValue = e.CommandSource.Parent.Parent.FindControl("HFIdTipoTalonario").value
            CboEstado.Items(2).Enabled = e.CommandSource.Parent.Parent.FindControl("HFEstado").value = 1
            CboEstado.Enabled = Not e.CommandSource.Parent.Parent.FindControl("HFEstado").value = 1
            CboTipoTalonario.Enabled = False
            TxtNumeroDesde.Enabled = False
            TxtNumeroHasta.Enabled = False
            BDPFechaVencimiento.Enabled = CboEstado.Enabled
            BDPFechaAlta.Enabled = False
            If Not CboEstado.Enabled Then
                LblError.Text = "Para administrar el talonario debe desasignarlo primero desde otra ventana."
            Else
                LblError.Text = ""
            End If
        End If
    End Sub

    Protected Sub LnkCalelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LnkCalelar.Click
        LimpiarCampos()
        LLenar_Grid()

    End Sub

    Protected Sub LnkEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LnkEliminar.Click
        If HFId.Value.ToString() <> "" Then
            If Talonario.Eliminar(HFId.Value.ToString()) Then
                LimpiarCampos()
                LLenar_Grid()
            Else
                LblError.Text = "Error, no se puede eliminar un talonario que ha sido asignado."
            End If
        End If
    End Sub

    Protected Sub LnkBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LnkBuscar.Click
        Dim Estado As String = CboEstado.SelectedValue.ToString()
        Dim TipoTalonario As String = CboTipoTalonario.SelectedValue.ToString()
        If Estado = "-1" Then
            Estado = ""
        End If
        If TipoTalonario = "-1" Then
            TipoTalonario = ""
        End If
        GridTalonario.DataSource = Talonario.BuscarFiltrado(HFId.Value.ToString(), TxtNumeroDesde.Text, TxtNumeroHasta.Text, BDPFechaAlta.Text, BDPFechaVencimiento.Text, Estado, TipoTalonario)
        GridTalonario.DataBind()
    End Sub


    Protected Sub GridTalonario_PageIndexChanging(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridTalonario.PageIndexChanging
        GridTalonario.PageIndex = e.NewPageIndex
        LnkBuscar_Click(sender, e)

    End Sub
End Class